package com.ruoyi.system.domain.construction;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.*;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 施工订单表
 *
 * @author 张少丛
 */
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderTeam implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 订单ID */
    @Excel(name = "序号", cellType = Excel.ColumnType.NUMERIC)
    private Long orderTeamId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderTeamSn;

    /** 下单人 */
    @Excel(name = "下单人ID")
    private Long customerId;

    /** 下单人姓名 */
    @Excel(name = "下单人姓名")
    private String customerName;

    /** 下单人手机号 */
    @Excel(name = "下单人手机号")
    private String customerPhone;

    /** 施工队ID */
    @Excel(name = "施工队ID")
    private Long teamInfoId;

    /** 施工队人员姓名 */
    @Excel(name = "施工队人员姓名")
    private String teamInfoName;

    /** 施工队手机号 */
    @Excel(name = "施工队手机号")
    private String teamInfoPhone;

    /** 省 */
    @Excel(name = "省")
    private Integer province;

    /** 市 */
    @Excel(name = "市")
    private Integer city;

    /** 区 */
    @Excel(name = "区")
    private Integer district;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 支付方式：1现金，2余额，3网银，4支付宝，5微信 */
    @Excel(name = "支付方式：1现金，2余额，3网银，4支付宝，5微信")
    private char paymentMethod;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private double orderMoney;

    /** 优惠金额 */
    @Excel(name = "优惠金额")
    private double districtMoney;

    /** 支付金额 */
    @Excel(name = "支付金额")
    private double paymentMoney;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    private Date createTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    private Date payTime;

    /** 订单状态 */
    @Excel(name = "订单状态：0未付款，2待收货，3已完成，4已完结，5交易取消")
    private char orderStatus;

    /** 订单积分 */
    @Excel(name = "订单积分")
    private Long orderPoint;

    /** 订单描述 */
    @Excel(name = "订单描述")
    private String orderDescribe;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String invoiceTime;

    /** 施工开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "施工开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    private Date teamInfoStarTime;

    /** 施工结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "施工结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    private Date teamInfoEndTime;

    /** 最后修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    private Date modifiedTime;

    /** 删除标识 */
    private String delFlag;

    private ConstructionInfo info;
    
    private Long supplierId;

    /** 施工人员ID组 */
    private List<Long> teamInfoIds;
}
